package com.hq.talk.app;

import android.content.Context;
import android.support.multidex.MultiDexApplication;

import com.hq.lib_comview.common.code.Constants;
import com.hq.lib_comview.common.utils.SystemUtils;
import com.hq.talk.BuildConfig;
import com.hyphenate.chat.EMClient;
import com.hyphenate.chat.EMOptions;
import com.umeng.socialize.PlatformConfig;

/**
 * 描述 ：
 * 作者 ：hq
 * 时间 ：2017/8/5 00:42
 */
public class App extends MultiDexApplication {

    public static boolean isDebug = BuildConfig.isDebug;

    public static int isFlag = BuildConfig.isFlag;

    public static int isOss = BuildConfig.oss_type;

    private static App instance;

    public static App getInstance() {
        return instance;
    }

    public static Context getContext() {
        if (instance != null) {
            return instance.getApplicationContext();
        }
        return null;
    }

    public static void exit() {
        AppManager.finishAll();
    }

    @Override
    public void onCreate() {
        super.onCreate();
        instance = this;
        String processAppName = SystemUtils.getAppName(instance);
        String packageName = getPackageName();
        //判断当前进程名是否和包名一致，避免多次初始化
        if (null != processAppName && processAppName.equalsIgnoreCase(packageName)) {
            //禁止数据加密，可能会导致数据乱码问题
            asyncInit();
        }
    }

    private void asyncInit() {
        configIM();
        configUmeng();
    }

    /**
     * 初始化环信
     */
    private void configIM() {
        EMOptions options = new EMOptions();
        // 默认添加好友时，是不需要验证的，改成需要验证
        options.setAcceptInvitationAlways(false);

        //初始化
        EMClient.getInstance().init(instance, options);
        //在做打包混淆时，关闭debug模式，避免消耗不必要的资源
        EMClient.getInstance().setDebugMode(true);
    }

    /**
     * 友盟配置
     */
    public void configUmeng() {
//		UMShareAPI.get(this);

        //微信 appid appsecret
        PlatformConfig.setWeixin(Constants.WeiXin.APP_ID, Constants.WeiXin.APP_SECRET);

        //新浪微博 appkey appsecret
        PlatformConfig.setSinaWeibo(Constants.Sina.APP_KEY,Constants.Sina.APP_SECRET, Constants.Sina.REDIRECT_URL);

        // QQ和Qzone appid appkey
        PlatformConfig.setQQZone(Constants.QQ.APP_ID, Constants.QQ.APP_KEY);
    }
}
